Enterprise Version
(Master's work)